Various global or local communications networks (the Internet, the World Wide Web, local area networks and the like) offer a user a vast amount of information. The information includes a multitude of contextual topics, such as but not limited to, news and current affairs, maps, company information, financial information and resources, traffic information, games and entertainment related information. Users use a variety of client devices (desktop, laptop, notebook, smartphone, tablets and the like) to have access to rich content (like images, audio, video, animation, and other multimedia content from such networks).
One of the popular services is an electronic bulletin board. Such boards may comprise ads about sale of cars (new and used), real estate property (homes, apartments, etc.) with different attributes. For example, ads about cars may contain such attributes as a brand, a model, a year of production, etc. Ads about real estate objects may contain such attributes as build year, size of an object or an apartment, a number of rooms, etc.
Users use these boards for browsing advertisements associated with goods or services that they are interested in. They can search ads using several tools available to them: sorting (by time of adding, by price, etc.), using filters that allow them to specify criteria of searching, etc. Filters are useful instrument especially in those circumstances, where board contain several ads and a given user knows parameters of an object she's looking for.
Every category of ads in the electronic bulletin board (such as cars, apartments, etc.) may contain hundreds of thousands of ads, saved in a dedicated storage in a form of raw data or in a form of a hierarchical data structure. It's simpler to save information in a form of raw data, but organized data structures offer certain benefits, especially during the data searching stage, as they generally allow for a faster search.
Those skilled in the art known several approaches to transforming raw data into an ordered data structure. Just as a few examples, these approaches include: arrays, lists, trees, graphs. Each of these (and other known) structures have their respective advantages, as well as the associated limitations.